<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script>
        /* 
            需求：见识过数组的元素进行累加
         */

        //  const array1 = [1,2,3,4,5];


         //方式一
 /*         let sum =0;
         for( let item of array1){
             sum+=item;
         }
         console.log(sum) */




         //方式二
         /* 
            a:表示上一次执行的结果
            b:表示每次循环的item
            一般情况下：给变量命名要有意义
          */
/*          const result = array1.reduce((previousVal,currencyVal) => previousVal+currencyVal)
         console.log(result)    //15
          */

          /* 
            如果执行了initialValue，那么在计算的时候就把initialValue赋值给previousValue，然后把数组的第一个参数赋值给currentValue
            如果没有指定，就把数组的第一个参数赋值给previousValue，第二个参数赋值给currencyValue
           */
   /*        const initialValue = 100;
          let result = array1.reduce(
              (previousValue,currencyValue) => previousValue+currencyValue,
            //   initialValue
          )
          console.log(result) */


        //定义一个函数
        /* 
            左边是函数名称，右边是函数体
         */
   /*       const getMax = (a,b) => Math.max(a,b);
         console.log([100,200].reduce(getMax,250))
         console.log([100].reduce(getMax,101)) */


         function myReduce(previous,current,index,array){//自定义了一个函数，并将函数传给reduce
             const results = previous + current;
             console.log("previous "+previous +",current:"+current+" index: "+ab+",array: "+array)
             return results

         }
         const array1=[1,2,3,4,5];
         array1.reduce(myReduce);

         
    </script>
</head>
<body>
    
</body>
</html>